home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-09-21 | 4.3 KB | 124 lines | [TEXT/pdos] |
- Apple II
- Technical Notes
- _____________________________________________________________________________
- Developer Technical Support
-
- Apple IIgs
- #89: MessageByName--Catchy Messages
-
- Written by: Dan Strnad & Dave Lyons September 1990
-
- This note clarifies MessageByName and provides examples of creating and
- retrieving a named message.
- _____________________________________________________________________________
-
-
- Did You Say You Want To Get A Message?
-
- All you have to do is ask. Apple IIgs Toolbox Reference, Volume 3 already
- tells you how. Here's what the fine print says: with the createItFlag set to
- FALSE and the name of the message you are after in the nameString, you call
- MessageByName. What's unclear in the manual is that if the message was found,
- no error is returned, the createFlag is returned as FALSE, and messageID
- contains the ID you can pass to MessageCenter to retrieve the contents of the
- message. Here's an example of MessageByName in use.
-
- The following code creates a named message.
-
- CreateNamedMessage
- pha
- pha
- pea 1 ;create it
- pushlong #MsgBlock
- _MessageByName ;function $1701
- pla
- sta myMsgID ;keep the ID if you want
- pla ;check the createFlag if
- ; you want
- ...
-
- MsgBlock dc.w MsgBlockEnd-MsgBlock
- dc.b 28,'XYZ Software:My Cool Product' ;Pascal-style string
- ... more data goes here
- MsgBlockEnd
-
- The following code retrieves the message.
-
- pha
- pha
- pea 0 ;don't create message
- pushlong #MsgBlock
- _MessageByName ;function $1701
- ply ;keep id of existing
- ; message
- pla ;createFlag (ignore)
- bcs noMessage ;carry set if an error
- ; occurred
-
-
- pea 2 ;MessageCenter action:GET
- phy ;message ID for
- ; MessageCenter, below
- pha
- pha ;space for NewHandle
- ; result
- lda #0 ;size of handle (0)
- pha
- pha
- ldx MyID ;ID for empty
- phx
- pha ;handle attributes (0)
- pha
- pha ;no special location
- _NewHandle
- lda 3,s
- sta mcHandle+2
- lda 1,s
- sta mcHandle ;keep a copy of the
- ; handle for later
- _MessageCenter ;takes Action, Msg ID,
- ; and Handle
-
- lda mcHandle+2
- pha
- lda mcHandle
- pha
- phd
- tsc
- tcd
- ldy #2
- lda [3],y
- tax
- lda [3]
- sta 3
- stx 5
-
- * now read data from the message at [3]
- ldy #$xxxx ;index past the name
- ; string
- lda [3],y
- ...
- pld
- pla
- pla
-
- lda mcHandle+2
- pha
- lda mcHandle
- pha
- _DisposeHandle
-
- noMessage ...
-
- mcHandle dc.l 0
- myMsgID dc.w 0
-
- MessageByName is available in Tool Locator versions 3.0 and later (System
- Software 5.0 and later).
-
-
- Further Reference
- _____________________________________________________________________________
- o Apple IIgs Toolbox Reference, Volumes 2-3
-
-